/* BEGIN_LEGAL 

Copyright (c) 2021 Intel Corporation

  Licensed under the Apache License, Version 2.0 (the "License");
  you may not use this file except in compliance with the License.
  You may obtain a copy of the License at

      http://www.apache.org/licenses/LICENSE-2.0

  Unless required by applicable law or agreed to in writing, software
  distributed under the License is distributed on an "AS IS" BASIS,
  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  See the License for the specific language governing permissions and
  limitations under the License.
  
END_LEGAL */
/// @file xed-operand-enum.h

// This file was automatically generated.
// Do not edit this file.

#if !defined(XED_OPERAND_ENUM_H)
# define XED_OPERAND_ENUM_H
#include "xed-common-hdrs.h"
#define XED_OPERAND_INVALID_DEFINED 1
#define XED_OPERAND_AGEN_DEFINED 1
#define XED_OPERAND_AMD3DNOW_DEFINED 1
#define XED_OPERAND_ASZ_DEFINED 1
#define XED_OPERAND_BASE0_DEFINED 1
#define XED_OPERAND_BASE1_DEFINED 1
#define XED_OPERAND_BCAST_DEFINED 1
#define XED_OPERAND_BCRC_DEFINED 1
#define XED_OPERAND_BRDISP_WIDTH_DEFINED 1
#define XED_OPERAND_CET_DEFINED 1
#define XED_OPERAND_CHIP_DEFINED 1
#define XED_OPERAND_CLDEMOTE_DEFINED 1
#define XED_OPERAND_DEFAULT_SEG_DEFINED 1
#define XED_OPERAND_DF32_DEFINED 1
#define XED_OPERAND_DF64_DEFINED 1
#define XED_OPERAND_DISP_DEFINED 1
#define XED_OPERAND_DISP_WIDTH_DEFINED 1
#define XED_OPERAND_DUMMY_DEFINED 1
#define XED_OPERAND_EASZ_DEFINED 1
#define XED_OPERAND_ELEMENT_SIZE_DEFINED 1
#define XED_OPERAND_ENCODER_PREFERRED_DEFINED 1
#define XED_OPERAND_ENCODE_FORCE_DEFINED 1
#define XED_OPERAND_EOSZ_DEFINED 1
#define XED_OPERAND_ERROR_DEFINED 1
#define XED_OPERAND_ESRC_DEFINED 1
#define XED_OPERAND_FIRST_F2F3_DEFINED 1
#define XED_OPERAND_HAS_MODRM_DEFINED 1
#define XED_OPERAND_HAS_SIB_DEFINED 1
#define XED_OPERAND_HINT_DEFINED 1
#define XED_OPERAND_ICLASS_DEFINED 1
#define XED_OPERAND_ILD_F2_DEFINED 1
#define XED_OPERAND_ILD_F3_DEFINED 1
#define XED_OPERAND_ILD_SEG_DEFINED 1
#define XED_OPERAND_IMM0_DEFINED 1
#define XED_OPERAND_IMM0SIGNED_DEFINED 1
#define XED_OPERAND_IMM1_DEFINED 1
#define XED_OPERAND_IMM1_BYTES_DEFINED 1
#define XED_OPERAND_IMM_WIDTH_DEFINED 1
#define XED_OPERAND_INDEX_DEFINED 1
#define XED_OPERAND_LAST_F2F3_DEFINED 1
#define XED_OPERAND_LLRC_DEFINED 1
#define XED_OPERAND_LOCK_DEFINED 1
#define XED_OPERAND_LZCNT_DEFINED 1
#define XED_OPERAND_MAP_DEFINED 1
#define XED_OPERAND_MASK_DEFINED 1
#define XED_OPERAND_MAX_BYTES_DEFINED 1
#define XED_OPERAND_MEM0_DEFINED 1
#define XED_OPERAND_MEM1_DEFINED 1
#define XED_OPERAND_MEM_WIDTH_DEFINED 1
#define XED_OPERAND_MOD_DEFINED 1
#define XED_OPERAND_MODE_DEFINED 1
#define XED_OPERAND_MODEP5_DEFINED 1
#define XED_OPERAND_MODEP55C_DEFINED 1
#define XED_OPERAND_MODE_FIRST_PREFIX_DEFINED 1
#define XED_OPERAND_MODE_SHORT_UD0_DEFINED 1
#define XED_OPERAND_MODRM_BYTE_DEFINED 1
#define XED_OPERAND_MPXMODE_DEFINED 1
#define XED_OPERAND_MUST_USE_EVEX_DEFINED 1
#define XED_OPERAND_NEEDREX_DEFINED 1
#define XED_OPERAND_NEED_MEMDISP_DEFINED 1
#define XED_OPERAND_NEED_SIB_DEFINED 1
#define XED_OPERAND_NELEM_DEFINED 1
#define XED_OPERAND_NOMINAL_OPCODE_DEFINED 1
#define XED_OPERAND_NOREX_DEFINED 1
#define XED_OPERAND_NO_EVEX_DEFINED 1
#define XED_OPERAND_NO_SCALE_DISP8_DEFINED 1
#define XED_OPERAND_NO_VEX_DEFINED 1
#define XED_OPERAND_NPREFIXES_DEFINED 1
#define XED_OPERAND_NREXES_DEFINED 1
#define XED_OPERAND_NSEG_PREFIXES_DEFINED 1
#define XED_OPERAND_OSZ_DEFINED 1
#define XED_OPERAND_OUTREG_DEFINED 1
#define XED_OPERAND_OUT_OF_BYTES_DEFINED 1
#define XED_OPERAND_P4_DEFINED 1
#define XED_OPERAND_POS_DISP_DEFINED 1
#define XED_OPERAND_POS_IMM_DEFINED 1
#define XED_OPERAND_POS_IMM1_DEFINED 1
#define XED_OPERAND_POS_MODRM_DEFINED 1
#define XED_OPERAND_POS_NOMINAL_OPCODE_DEFINED 1
#define XED_OPERAND_POS_SIB_DEFINED 1
#define XED_OPERAND_PREFIX66_DEFINED 1
#define XED_OPERAND_PTR_DEFINED 1
#define XED_OPERAND_REALMODE_DEFINED 1
#define XED_OPERAND_REG_DEFINED 1
#define XED_OPERAND_REG0_DEFINED 1
#define XED_OPERAND_REG1_DEFINED 1
#define XED_OPERAND_REG2_DEFINED 1
#define XED_OPERAND_REG3_DEFINED 1
#define XED_OPERAND_REG4_DEFINED 1
#define XED_OPERAND_REG5_DEFINED 1
#define XED_OPERAND_REG6_DEFINED 1
#define XED_OPERAND_REG7_DEFINED 1
#define XED_OPERAND_REG8_DEFINED 1
#define XED_OPERAND_REG9_DEFINED 1
#define XED_OPERAND_RELBR_DEFINED 1
#define XED_OPERAND_REP_DEFINED 1
#define XED_OPERAND_REX_DEFINED 1
#define XED_OPERAND_REXB_DEFINED 1
#define XED_OPERAND_REXR_DEFINED 1
#define XED_OPERAND_REXRR_DEFINED 1
#define XED_OPERAND_REXW_DEFINED 1
#define XED_OPERAND_REXX_DEFINED 1
#define XED_OPERAND_RM_DEFINED 1
#define XED_OPERAND_ROUNDC_DEFINED 1
#define XED_OPERAND_SAE_DEFINED 1
#define XED_OPERAND_SCALE_DEFINED 1
#define XED_OPERAND_SEG0_DEFINED 1
#define XED_OPERAND_SEG1_DEFINED 1
#define XED_OPERAND_SEG_OVD_DEFINED 1
#define XED_OPERAND_SIBBASE_DEFINED 1
#define XED_OPERAND_SIBINDEX_DEFINED 1
#define XED_OPERAND_SIBSCALE_DEFINED 1
#define XED_OPERAND_SMODE_DEFINED 1
#define XED_OPERAND_SRM_DEFINED 1
#define XED_OPERAND_TZCNT_DEFINED 1
#define XED_OPERAND_UBIT_DEFINED 1
#define XED_OPERAND_UIMM0_DEFINED 1
#define XED_OPERAND_UIMM1_DEFINED 1
#define XED_OPERAND_USING_DEFAULT_SEGMENT0_DEFINED 1
#define XED_OPERAND_USING_DEFAULT_SEGMENT1_DEFINED 1
#define XED_OPERAND_VEXDEST210_DEFINED 1
#define XED_OPERAND_VEXDEST3_DEFINED 1
#define XED_OPERAND_VEXDEST4_DEFINED 1
#define XED_OPERAND_VEXVALID_DEFINED 1
#define XED_OPERAND_VEX_C4_DEFINED 1
#define XED_OPERAND_VEX_PREFIX_DEFINED 1
#define XED_OPERAND_VL_DEFINED 1
#define XED_OPERAND_WBNOINVD_DEFINED 1
#define XED_OPERAND_ZEROING_DEFINED 1
#define XED_OPERAND_LAST_DEFINED 1
typedef enum {
  XED_OPERAND_INVALID,
  XED_OPERAND_AGEN,
  XED_OPERAND_AMD3DNOW,
  XED_OPERAND_ASZ,
  XED_OPERAND_BASE0,
  XED_OPERAND_BASE1,
  XED_OPERAND_BCAST,
  XED_OPERAND_BCRC,
  XED_OPERAND_BRDISP_WIDTH,
  XED_OPERAND_CET,
  XED_OPERAND_CHIP,
  XED_OPERAND_CLDEMOTE,
  XED_OPERAND_DEFAULT_SEG,
  XED_OPERAND_DF32,
  XED_OPERAND_DF64,
  XED_OPERAND_DISP,
  XED_OPERAND_DISP_WIDTH,
  XED_OPERAND_DUMMY,
  XED_OPERAND_EASZ,
  XED_OPERAND_ELEMENT_SIZE,
  XED_OPERAND_ENCODER_PREFERRED,
  XED_OPERAND_ENCODE_FORCE,
  XED_OPERAND_EOSZ,
  XED_OPERAND_ERROR,
  XED_OPERAND_ESRC,
  XED_OPERAND_FIRST_F2F3,
  XED_OPERAND_HAS_MODRM,
  XED_OPERAND_HAS_SIB,
  XED_OPERAND_HINT,
  XED_OPERAND_ICLASS,
  XED_OPERAND_ILD_F2,
  XED_OPERAND_ILD_F3,
  XED_OPERAND_ILD_SEG,
  XED_OPERAND_IMM0,
  XED_OPERAND_IMM0SIGNED,
  XED_OPERAND_IMM1,
  XED_OPERAND_IMM1_BYTES,
  XED_OPERAND_IMM_WIDTH,
  XED_OPERAND_INDEX,
  XED_OPERAND_LAST_F2F3,
  XED_OPERAND_LLRC,
  XED_OPERAND_LOCK,
  XED_OPERAND_LZCNT,
  XED_OPERAND_MAP,
  XED_OPERAND_MASK,
  XED_OPERAND_MAX_BYTES,
  XED_OPERAND_MEM0,
  XED_OPERAND_MEM1,
  XED_OPERAND_MEM_WIDTH,
  XED_OPERAND_MOD,
  XED_OPERAND_MODE,
  XED_OPERAND_MODEP5,
  XED_OPERAND_MODEP55C,
  XED_OPERAND_MODE_FIRST_PREFIX,
  XED_OPERAND_MODE_SHORT_UD0,
  XED_OPERAND_MODRM_BYTE,
  XED_OPERAND_MPXMODE,
  XED_OPERAND_MUST_USE_EVEX,
  XED_OPERAND_NEEDREX,
  XED_OPERAND_NEED_MEMDISP,
  XED_OPERAND_NEED_SIB,
  XED_OPERAND_NELEM,
  XED_OPERAND_NOMINAL_OPCODE,
  XED_OPERAND_NOREX,
  XED_OPERAND_NO_EVEX,
  XED_OPERAND_NO_SCALE_DISP8,
  XED_OPERAND_NO_VEX,
  XED_OPERAND_NPREFIXES,
  XED_OPERAND_NREXES,
  XED_OPERAND_NSEG_PREFIXES,
  XED_OPERAND_OSZ,
  XED_OPERAND_OUTREG,
  XED_OPERAND_OUT_OF_BYTES,
  XED_OPERAND_P4,
  XED_OPERAND_POS_DISP,
  XED_OPERAND_POS_IMM,
  XED_OPERAND_POS_IMM1,
  XED_OPERAND_POS_MODRM,
  XED_OPERAND_POS_NOMINAL_OPCODE,
  XED_OPERAND_POS_SIB,
  XED_OPERAND_PREFIX66,
  XED_OPERAND_PTR,
  XED_OPERAND_REALMODE,
  XED_OPERAND_REG,
  XED_OPERAND_REG0,
  XED_OPERAND_REG1,
  XED_OPERAND_REG2,
  XED_OPERAND_REG3,
  XED_OPERAND_REG4,
  XED_OPERAND_REG5,
  XED_OPERAND_REG6,
  XED_OPERAND_REG7,
  XED_OPERAND_REG8,
  XED_OPERAND_REG9,
  XED_OPERAND_RELBR,
  XED_OPERAND_REP,
  XED_OPERAND_REX,
  XED_OPERAND_REXB,
  XED_OPERAND_REXR,
  XED_OPERAND_REXRR,
  XED_OPERAND_REXW,
  XED_OPERAND_REXX,
  XED_OPERAND_RM,
  XED_OPERAND_ROUNDC,
  XED_OPERAND_SAE,
  XED_OPERAND_SCALE,
  XED_OPERAND_SEG0,
  XED_OPERAND_SEG1,
  XED_OPERAND_SEG_OVD,
  XED_OPERAND_SIBBASE,
  XED_OPERAND_SIBINDEX,
  XED_OPERAND_SIBSCALE,
  XED_OPERAND_SMODE,
  XED_OPERAND_SRM,
  XED_OPERAND_TZCNT,
  XED_OPERAND_UBIT,
  XED_OPERAND_UIMM0,
  XED_OPERAND_UIMM1,
  XED_OPERAND_USING_DEFAULT_SEGMENT0,
  XED_OPERAND_USING_DEFAULT_SEGMENT1,
  XED_OPERAND_VEXDEST210,
  XED_OPERAND_VEXDEST3,
  XED_OPERAND_VEXDEST4,
  XED_OPERAND_VEXVALID,
  XED_OPERAND_VEX_C4,
  XED_OPERAND_VEX_PREFIX,
  XED_OPERAND_VL,
  XED_OPERAND_WBNOINVD,
  XED_OPERAND_ZEROING,
  XED_OPERAND_LAST
} xed_operand_enum_t;

/// This converts strings to #xed_operand_enum_t types.
/// @param s A C-string.
/// @return #xed_operand_enum_t
/// @ingroup ENUM
XED_DLL_EXPORT xed_operand_enum_t str2xed_operand_enum_t(const char* s);
/// This converts strings to #xed_operand_enum_t types.
/// @param p An enumeration element of type xed_operand_enum_t.
/// @return string
/// @ingroup ENUM
XED_DLL_EXPORT const char* xed_operand_enum_t2str(const xed_operand_enum_t p);

/// Returns the last element of the enumeration
/// @return xed_operand_enum_t The last element of the enumeration.
/// @ingroup ENUM
XED_DLL_EXPORT xed_operand_enum_t xed_operand_enum_t_last(void);
#endif
